// import request from '@/utils/request';

import Mock from 'mockjs';
import { deepClone, asyncRoutes, constantRoutes } from './_routes.js';

const routes = deepClone([...constantRoutes, ...asyncRoutes]);
const roles = [
    {
        key: 'admin',
        name: 'admin',
        description: 'Super Administrator. Have access to view all pages.',
        routes: routes
    },
    {
        key: 'editor',
        name: 'editor',
        description: 'Normal Editor. Can see all pages except permission page',
        routes: routes.filter(i => i.path !== '/permission')// just a mock
    },
    {
        key: 'visitor',
        name: 'visitor',
        description: 'Just a visitor. Can only see the home page and the document page',
        routes: [{
            path: '',
            redirect: 'dashboard',
            children: [
                {
                    path: 'dashboard',
                    name: 'Dashboard',
                    meta: { title: 'dashboard', icon: 'dashboard' }
                }
            ]
        }]
    }
];

function PromiseU(o){
    return new Promise((resolve, reject) => {
        resolve(o);
    });
}

// --------------------------------------------------

export function getRoutes() {
    // return request({url: '/dirty/routes', method: 'get'});
    return PromiseU({code: 20000, data: routes});
}

export function getRoles() {
  // return request({url: '/dirty/roles', method: 'get'});
    return PromiseU({code: 20000, data: roles});
}

export function addRole(data) {
  // return request({url: '/dirty/role', method: 'post', data});
    return PromiseU({code: 20000, data: {key: Mock.mock('@integer(300, 5000)')}});
}

export function updateRole(id, data) {
  // return request({url: `/dirty/role/getUserInfo?id=${id}`, method: 'get', data});
    return PromiseU({code: 20000, data: {status: 'success'}});
}

export function deleteRole(id) {
    // return request({url: `/dirty/role/deleteUser`, method: 'post', data: { userId: id }});
    return PromiseU({code: 20000, data: {status: 'success'}});
}
